import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


	public class Menu extends JFrame implements ActionListener{
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;
		JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
		Graphe g;
		static JPanel panel;
		static JFrame fenetre=new JFrame();
		public Menu(Graphe g){
			super();
	        this.g=g;
			build();//On initialise notre fenêtre
		}
	 
		private void build(){
			fenetre.setTitle("Opération sur le graphe"); //On donne un titre à l'application
			fenetre.setSize(650,240); //On donne une taille à notre fenêtre
			fenetre.setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
			fenetre.setResizable(true); //On permet le redimensionnement
			fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
			fenetre.setContentPane(buildContentPane());
		}

		
		  private JPanel buildContentPane(){
				panel = new JPanel();
				this.setLayout(new FlowLayout());
	    //On définit le layout à utiliser sur le content pane
	    //Trois lignes sur deux colonnes
	    //On ajoute les bouton au content pane de la JFrame
	    b1=new JButton("Obtenir le nombre de sommet");
	    b1.addActionListener(this);
	    panel.add(b1);
	    b2=new JButton("Obtenir le nombre d'arc");
	    b2.addActionListener(this);
	    panel.add(b2);
	    b3=new JButton("Ensemble des sommets");
	    b3.addActionListener(this);
	    panel.add(b3);
	    b4=new JButton("Ensemble des sommets trié par nom");
	    b4.addActionListener(this);
	    panel.add(b4);
	    b5=new JButton("Ensemble des sommets trié par degré sortant");
	    b5.addActionListener(this);
	    panel.add(b5);
	   b6=new JButton("Ensemble des arcs");
	    b6.addActionListener(this);
	    panel.add(b6);
	    b7=new JButton("Ajouter un sommet");
	    b7.addActionListener(this);
	    panel.add(b7);
	    b8=new JButton("Supprimer un sommet");
	    b8.addActionListener(this);
	    panel.add(b8);
	    b9=new JButton("Ajouter un arc");
	    b9.addActionListener(this);
	    panel.add(b9);
	    b10=new JButton("Supprimer un arc");
	    b10.addActionListener(this);
	    panel.add(b10);
	    b11=new JButton("Information sur un sommet");
	    b11.addActionListener(this);
	    panel.add(b11);
	    b12=new JButton("Nombre de comptes");
	    b12.addActionListener(this);
	    panel.add(b12);
	    b13=new JButton("Age moyen des utilisateurs");
	    b13.addActionListener(this);
	    panel.add(b13);
	    b14=new JButton("Ensemble des administrateurs");
	    b14.addActionListener(this);
	    panel.add(b14);
	    b15=new JButton("Ecrire le graphe");
	    b15.addActionListener(this);
	    panel.add(b15);
	    b16=new JButton("Lire le graphe");
	    b16.addActionListener(this);
	    panel.add(b16);
	    b17=new JButton("Voir le plus influent");
	    b17.addActionListener(this);
	    panel.add(b17);
	    fenetre.setVisible(true);
	    return panel;
	    
	  }     
	  @SuppressWarnings("unused")
	public void actionPerformed(ActionEvent e) {
		  Object source = e.getSource();
		  String s="";
			if(source == b1){
				s=Integer.toString(g.nbSommets()); 
				fenetre.setVisible(false);
				panel.setVisible(false);
				Fenetre f=new Fenetre("Il y a "+s+" sommet(s) dans le graphe");
				
			} else {
				if(source == b2){
					fenetre.setVisible(false);
					panel.setVisible(false);
					s=Integer.toString(g.nbArc()); 
					Fenetre f=new Fenetre("Il y a "+s+" arc(s) dans le graphe");
			}else{
				if (source==b3){
					fenetre.setVisible(false);
					panel.setVisible(false);
					Fenetre f=new Fenetre(g.ensembleSom());
					
				}else{
					if (source==b4){
						fenetre.setVisible(false);
						panel.setVisible(false);
						Fenetre f=new Fenetre(g.trierNom());
					}else
						if (source==b5){
							fenetre.setVisible(false);
							panel.setVisible(false);
							Fenetre f=new Fenetre(g.trierdegre());
						}else{
							if (source==b6){
								fenetre.setVisible(false);
								panel.setVisible(false);
								Fenetre f=new Fenetre(g.obtenirArc());
							}else{
								if (source==b7){
									fenetre.setVisible(false);
								panel.setVisible(false);
								Ajout a=new Ajout(g,"Ajouter un sommet");
								}else{
									if (source==b8){
										fenetre.setVisible(false);
										panel.setVisible(false);
										FenetreSup fs=new FenetreSup(g,g.listeDesSommets);
									}else{
										if (source==b9){
											fenetre.setVisible(false);
											panel.setVisible(false);
											FenArc fa=new FenArc(g,g.listeDesSommets);
										}else{
											if (source==b10){
												fenetre.setVisible(false);
												panel.setVisible(false);
												FenSupArc fsa=new FenSupArc(g,g.listeDesSommets);
											}else{
									
									if (source==b11){
										fenetre.setVisible(false);
										panel.setVisible(false);
										FenetreList fl=new FenetreList(g,g.listeDesSommets);
										
									}else{
										
								
								if (source==b12){
									fenetre.setVisible(false);
									panel.setVisible(false);
									Fenetre f=new Fenetre(g.nbCompte());
									
								}else{
									if (source==b13){
										fenetre.setVisible(false);
										panel.setVisible(false);
										Fenetre f=new Fenetre(g.ageMoyen());
									}else{
										if (source==b14){
											fenetre.setVisible(false);
											panel.setVisible(false);
											Fenetre f=new Fenetre(g.admin());
										}else{
											if(source==b15){
												fenetre.setVisible(false);
												panel.setVisible(false);
												Fenetre f=new Fenetre(g.ecrireGraphe());
											}else{
												fenetre.setVisible(false);
												panel.setVisible(false);
												Fenetre f=new Fenetre(g.PageRank());
											}
										}
									}
								}
							}
						}
				}
			}
	}
						}
	}
			}
	}
	  }
		}
	}
	


